package tpcomp2010.estructura;

import java.util.ArrayList;

/**
 *  Clase que representa la lista de Aristas.
 *  
 */

public class ListaAristas extends ArrayList<Arista> {
    
    private ArrayList<Arista> vacios;

    /** Constructor por defecto de la clase ListaArista.
     */
    public ListaAristas(){
        this.vacios       = new ArrayList<Arista>();
    }

    /** Obtiene la lista de aristas con simbolo vacio.
     * @return vacios Lista de aristas con simbolo vacio.
     */
    public ArrayList<Arista> getVacios() {
        return vacios;
    }

    /* Metodo que inserta una arista a la lista de aristas actual.
     * @param e Arista a insertar a la lista.
     */
    public void insertar(Arista e) {          
        this.add(e);        
        if (e.isVacio()) {
            this.agregarAristaVacia(e);
        }
    }

    /** Obtiene la arista de la lista d aristas con el simbolo indicado.
     * @return result la arista con el simbolo indicado.
     */
    public Arista getSimboloArista(String symbol) {
        Arista result = null;
        
        for (Arista arista : this) {
            if ((arista.getEtiqueta().compareToIgnoreCase(symbol))== 0){
                result = arista;
                break;
            }
        }        
        return result; 
    }

    private void agregarAristaVacia(Arista e) {
        this.getVacios().add(e);
    }

    public int cantidad() {
        return this.size();
    }
    
}   
